/**
 * Excel表头识别符结合设定
 */
export interface HeaderIdentifiers {
  /**
   * 样本ID列头集合
   */
  id: string
  /**
   * 样本字段名列头集合
   */
  field: string
  /**
   * 样本字段值列头集合
   */
  value: string
  /**
   * 样本移除值列头集合
   */
  valueToRemove: string
  /**
   * 其他有效值列头集合
   */
  extra: string
}

/**
 * SQL脚本生成器的数据表格设置
 */
export interface DataTableSettings {
  /**
   * 保留的小数位数
   */
  decimalPlaces: number
  /**
   * 是否显示百分比
   */
  addPercentage: boolean
  /**
   * 工作表名称
   */
  resultPageName: string
}

/**
 * SQL脚本生成器的设置
 */
export interface Settings {
  /**
   * 配置名
   */
  name: string
  /**
   * 表头标识符的设置
   */
  identifiers: HeaderIdentifiers
  /**
   * ID字段名
   */
  idFieldName: string
  /**
   * ID字段值是否是字符串类型
   */
  isTextId: boolean
  /**
   * SQL脚本列的表头内容
   */
  scriptColumnHeader: string
  /**
   * 额外条件的逻辑类型，默认是'且'逻辑
   */
  extraLogic: 'AND' | 'OR'
  /**
   * 分类值的更新类型，默认是追加更新
   */
  categoricalUpdateKind: 'APPEND' | 'RESET'
  /**
   * 额外列表头的映射表
   */
  extraMap?: Map<string, string>
  /**
   * 是否构建结果数据表，默认是false
   */
  buildDataTable: boolean
  /**
   * 统计数据表配置
   */
  dataTable: DataTableSettings
}

export type WebCommands =
  | 'message'
  | 'getSettingList'
  | 'setSettingList'
  | 'getSettingData'
  | 'setSettingData'
  | 'saveSetting'
  | 'saveSettingAsDefault'
